importPackage(java.util);
importPackage(net.vsame.url2sql.domain);
importPackage(net.vsame.url2sql.helper);

var SQL = {};
(function(){
	var getMap = function(param){
		var map = new java.util.HashMap();
		if(!param){
			return map;
		}
		for(var i in param){
			var value = param[i];
			var array;
			if(value instanceof Array){
				array = java.lang.reflect.Array.newInstance(java.lang.String, value.length);
				for(var j=0; j<value.length; j++){
					array[j] = value[j] + "";
				}
			}else{
				array = java.lang.reflect.Array.newInstance(java.lang.String, 1);
				array[0] = value + "";
			}
			map.put(i, array);
		}
		return map;
	};
	
	SQL.query = function(sql, param){
		return net.vsame.url2sql.helper.SqlHelper.query(sql, getMap());
	};
	SQL.queryOne = function(sql, param){
		return net.vsame.url2sql.helper.SqlHelper.queryOne(sql, getMap());
	};
	SQL.execute = function(sql, param){
		return net.vsame.url2sql.helper.SqlHelper.execute(sql, getMap());
	};
})();

function execute(js, context){
	
	/**
	 * 设置错误
	 * @param code
	 * @param msg
	 */
	var error = function(code, msg){
		context.putError(code, msg);
	};
	
	var reload = function(){
		net.vsame.url2sql.web.UrlSqlMappingHelper.reload();
		context.putUsefulData('data','ok');
	};
	
	//校验失败需返加code值和msg
	if(js){
		eval('((function(SQL){' + js + '}).call(context, SQL))');
	}
};
